package org.example.dynamic;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * 动态代理调用处理器
 */
public class DynamicProxyHandler implements InvocationHandler {
    // 被代理的接口
    private Object object;

    public DynamicProxyHandler(Object object) {
        this.object = object;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("Begin-----------------");
        Object invoke = method.invoke(object, args); // 利用反射调用类里面的方法
        System.out.println("After-----------------");
        return invoke; // invoke 为调用结果，如果没有则为null
    }
}
